package rmi;

import java.net.InetAddress;
import java.rmi.*;
import objetoRemoto.*;

import javax.swing.JFrame;



/**
 * @author casidiablo
 * 
 */
public class RmiServidor  {

	private static GUIServidor ventana;

	private int estePuerto;

	private String estaIP;
	
	private MensajesRemotos msj;
//	private Registry registro;

	/**
	 * Este es el metodo constructor de la clase RmiServidor
	 */
	/*public RmiServidor() throws RemoteException {
		try {
			// obtener la direccion de este host.
			estaIP = (InetAddress.getLocalHost()).toString();
		} catch (Exception e) {

			throw new RemoteException("No se puede obtener la direccion IP.");
		}
		estePuerto = 3232; // asignar el puerto que se registra
		ventana.anadirEntradas("Conexion establecida por...\nEsta direccion="
				+ estaIP + ", y puerto=" + estePuerto);
		try {

			// crear el registro y ligar el nombre y objeto.
			registro = LocateRegistry.createRegistry(estePuerto);
			registro.rebind("rmiServidor", this);
		} catch (RemoteException e) {
			throw e;
		}
	}*/
	public RmiServidor() 
    {
        try 
        {
           estaIP = (InetAddress.getLocalHost()).toString();
           InterfazReceptorMensajes mensajesRemotos = new MensajesRemotos();
           estePuerto = 3232;
           Naming.rebind(estaIP+":"+estePuerto, mensajesRemotos);
           // asignar el puerto que se registra
           ventana.anadirEntradas("Conexion establecida por...\nEsta direccion="
   			+ estaIP + ", y puerto=" + estePuerto);
           //Naming.rebind ("//estaIP/MensajesRemotos", mensajesRemotos);//publico el objeto remoto
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    } 
    
	
	public void mostrarMensajes (String texto) throws RemoteException{
		msj.recibirMensaje(texto);
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see InterfazReceptorMensajes#recibirMensaje(java.lang.String)
	 */
	/*public void recibirMensaje(String texto) throws RemoteException {
		ventana.anadirEntradas(texto);
	}
	
	
    */
	
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		JFrame.setDefaultLookAndFeelDecorated(true);
		ventana = new GUIServidor();
		ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		try {
			new RmiServidor();
		} catch (Exception e) {
			e.printStackTrace();
			System.exit(1);
		}
	}
}
